The last ten years have witnessed a ten-thousand fold increase in computer performance. At the same time, requirements are increasing for more robust, highly available, disaster-tolerant computing resources. Nevertheless, computing resources continue to be pushed to their limits, with performance problems often traceable to the connectivity and performance of input/output subsystems.
A wide variety of input/output (I/O) devices with various performance capabilities may be included in a data storage and retrieval system. Examples of I/O devices include keyboards, pointing devices, scanners, disk drives, CD-ROM drives, printers, display monitors, local area network (LAN) adapters, FAX/modem boards, sound boards, etc. I/O devices are produced by many different manufacturers and come in various models with varying operational characteristics. The number of possible combinations of I/O devices in a data storage and retrieval system may be very large.
In order for the components of a data storage and retrieval system to function together properly and optimally, system configuration information is provided during the power-on self-test (POST) and system initialization routines executed when the system is first powered-up or reset. The system configuration information is used to initialize the various components of the system. Device registers are set, device parameters are loaded, interrupt vectors are created, etc. Computer operating system and/or other system management software is then configured in accordance with the system configuration information.
A “bus” in a digital computer system is a circuit consisting of parallel conductors for interconnecting major components of a digital computer which transfers electric signals from one component connected to the bus to another component connected to the bus. Buses of various different types are present in virtually every digital computer. One particular bus, called the Small Computer System Interface (“SCSI”) bus, is used widely for coupling to a digital computer various I/O devices, e.g. disk drives, Digital Audio Tape (“DAT”) drives, Compact Disk Read Only Memory (“CD ROM”) drives, optical storage drives, printers, scanners, and even photo-composers.
The SCSI bus is a local Input/Output (“I/O”) bus that can be operated over a wide range of data rates. The primary object of the SCSI bus interface is to provide host computers with device independence within a class of devices. Accordingly, different disk drives, tape drives, printers, optical media drives, and other devices can be added to a host computer without requiring modifications to generic system hardware of software. Standards have been adopted which specify different types of SCSI buses, e.g. the SCSI-1 and, SCSI-1I standards. A key object of the SCSI-1I standard is providing compatibility with those SCSI-1 devices that support bus parity, and that conform to level 2 of the SCSI-1 standard. In practical terms such compatibility means many different SCSI-1 devices operate properly if connected to a SCSI-1I bus despite differences between the SCSI-1 and SCSI-1I standards.
The SCSI bus is a parallel, multimaster I/O bus which has been widely adopted for use in digital computer systems since the American National Standards Institute (“ANSI”) approved the SCSI-1 standard. The first SCSI standard, now known as SCSI-1, was adopted in 1986. A SCSI-1 bus interconnects at speeds of 5 MB/sec up to 8 logical units, i.e. host bus adapters or peripheral controllers, each unit can, in turn, have up to 8 logical subunits for a total of 64 logical subunits.
Since that time, SCSI has been refined and extended numerous times, with the introduction of Fast SCSI (SCSI-2) at 10 MB/sec., Fast Wide SCSI (SCSI-2), running at 20 MB/sec., and Ultra SCSI (SCSI-3 or Fast-20), which provide data transfer rates of up to 40 MB/sec. Overall, SCSI performance has doubled approximately every five years since the original standard was released in 1986, and the number of devices permitted on a single bus has been increased to 16. At the same time, a large measure of backward compatibility has been achieved, enabling newer devices to coexist on a bus with older devices.
Electrically, SCSI bus signal lines connecting devices can be either single-ended, wherein each signal's logic level is determined in relationship to a common electrical ground, or differential, wherein each signal's logic level is determined between pairs of conductors without reference to a common electrical ground. A single-ended SCSI bus may be up to 18 feet long. Alternatively, a differential SCSI bus may be up to 75 feet long.
The SCSI-2 standard, which evolved from the SCSI-1 standard, makes numerous changes from the SCSI-1 standard including establishment of a standard way for powering SCSI bus terminators, and two optional performance enhancements to increase the amount of data which can be transferred across a SCSI-2 bus during an interval of time. These two optional performance enhancements are fast SCSI which permits up to 10,000,000 transfers across the bus per second, and “wide” SCSI which permits parallel transfer of either 16 or 32 bits at a time as an alternative to the SCSI-1 limitation of transferring only 8 bits in parallel at any instant in time.
Each SCSI bus device that includes its own separate enclosure includes two SCSI bus connectors, unless the device is specifically designed for connection at only the end of the SCSI bus. If such a two connector SCSI bus device connects to one end or the other of the bus, a SCSI bus cable connects to one or the other of these connectors. If the device has an internal terminator which generally can be enabled by a switch, usually located on the outside of the device's enclosure, nothing connects to the device's second connector. Conversely, if the device lacks an internal terminator, a SCSI bus terminator will be installed on the device's second connector. If a SCSI device having two connectors is installed anywhere along the length of the bus other than at an end of the bus, then different SCSI bus cables connect to each of the connectors. In this way, the SCSI bus electrically “daisy chains” through all the devices connected to the bus except those devices connected at one end or the other of the SCSI bus.
To provide host bus adapters capable of fully exploiting the range of device capabilities permitted by the SCSI-2 standard, terminators in modern SCSI bus host bus adapters must be configurable to work properly when connected to devices designed for use with either the “narrow” SCSI-1 bus, which transfers only 8 bits at any instant in time, or with the “wide” SCSI-2 bus, which transfers 16 bits at each instant in time.
Moreover, most host bus adapters also include at least two SCSI connectors, one for connecting to SCSI devices within the same enclosure as the host bus adapter, and another for connecting to SCSI devices residing in a separate enclosure. Consequently, the SCSI-2 bus standard permits connecting wide SCSI devices to one of a host bus adapter's connectors and narrow SCSI devices to another connector of the host bus adapter. Moreover, even if a host bus adapter provides only wide SCSI bus connectors, SCSI bus cables are available which mate with the wide SCSI bus connector at one end, while the cable's other end mates with a narrow SCSI bus connector of a narrow SCSI bus device. Under any of these circumstances, the host bus adapter may be electrically located in the middle of a narrow SCSI-1 bus while concurrently being located at one end of the additional signal lines of a wide SCSI-2 bus. If this occurs, the SCSI bus host bus adapter must be capable of providing proper termination for that portion of the wide SCSI-2 bus which exceeds the narrow SCSI-1 bus.
A SCSI bus host bus adapter may, and frequently does, include more than two SCSI connectors to facilitate connecting to both narrow and wide SCSI bus cables. For example, the host bus adapter may include a wide SCSI-2 connector for connecting to SCSI devices residing in an enclosure separate from that in which the host bus adapter resides, and a pair of connectors for connecting to SCSI devices located within the same enclosure as the host bus adapter. Because a SCSI bus must be terminated, and because a SCSI bus may have only two terminators; only two connectors of a host bus adapter having three or more connectors may be connected to devices only by one or by two connectors with any additional connectors remaining unused.
To permit configuring the terminators included in a host bus adapter properly for its location either at one end or intermediate the ends of a SCSI bus, and/or for concurrent operation both with narrow and with wide SCSI bus devices regardless of its location along the SCSI bus; host bus adapters frequently include switches or jumpers which, prior to operating the host bus adapter, must be adjusted to accommodate the actual configuration of SCSI devices included in a computer system. Since a host bus adapter manufacturer cannot adjust the adapter's switches or jumpers, that task must be left to the individual who configures, or re-configures, a digital computer system that includes a SCSI host bus adapter.
Fibre Channel (“FC”) is an industry-standard, high-speed serial data transfer interface that can be used to connect systems and storage in point-to-point or switched topologies. Fibre Channel Arbitrated Loop (FC-AL), developed with storage connectivity in mind, is a recent enhancement to the standard that supports copper media and loops containing up to 126 devices, or nodes. FC-AL loops are hot-pluggable and tolerant of failures.
The FC standard supports bandwidths of 133 Mb/sec., 266 Mb/sec., 532 Mb/sec., 1.0625 Gb/sec., and 4 Gb/sec. (proposed) at distances of up to ten kilometers. Gigabit Fibre Channel's maximum data rate is 100 MB/sec. (200 MB/sec. full-duplex) after accounting for overhead.
In addition to its strong channel characteristics, Fibre Channel also provides powerful networking capabilities, allowing switches and hubs to enable the interconnection of systems and storage into tightly-knit clusters. These clusters will be capable of providing high levels of performance for file service, database management, or general purpose computing. Because it is able to span up to 10 kilometers between nodes, Fibre Channel will allow the very high speed movement of data between systems that are greatly separated from one another.
The FC standard defines a layered protocol architecture consisting of five layers, the highest defining mappings from other communication protocols onto the FC fabric. The various SCSI-1, -2, and -3, protocols discussed above may be mapped onto the FC fabric.
While the preceding specifications regarding SCSI/FC buses and bus termination is readily understood by those who design I/O devices and host bus adapters, system users may not comprehend the principles required for properly adjusting the switches or jumpers included in a host bus adapter. Moreover, the choice between singled ended and differential cabling for SCSI devices adds yet another complexity which must be addressed by someone configuring a digital computer system that includes a SCSI host bus adapter. The potential for confusion is increased by the fact that cables which visually appear identical may, in fact, be quite different electrically with one cable being useful only with a single-ended SCSI bus devices while the other cable being useful with either a single-ended or a differential SCSI bus devices.
Therefore, the complexity of properly terminating a SCSI bus combined with the complexity of selecting and properly installing the right SCSI cable frequently causes great difficulty for individuals configuring, or re-configuring, digital computer systems that include a SCSI bus. Such difficulties can be particularly exasperating if the system user lacks suitable and comparatively expensive SCSI bus diagnostic equipment that might assist in resolving precisely why a data storage and retrieval system that includes a SCSI bus fails to operate properly, or to operate at all.